FPGAs are reconfigurable (e.g., reprogrammable) hardware devices for digital logic. FPGAs include an array of logic gates that can be configured to construct arbitrary digital circuits. These circuits are specified using either circuit schematics or hardware description languages such as Verilog or Very High Speed Integrated Circuit Hardware Description Language (VHDL). Existing commercial libraries provide a wide range of pre-designed cores, including those of complete CPUs. More than one core can be placed onto an FPGA chip. For evaluation and development purposes, FPGAs are often shipped soldered to a board with peripherals, such as external random access memory (RAM), network interfaces, or persistent storage.
The basic building blocks of FPGAs are Configurable Logic Blocks (CLBs). Each CLB has two slices that each contain Lookup Tables (LUTs) and Flip Flops (FFs). LUTs can be configured to implement arbitrary functions that map multiple bits to one bit. They can, for example, implement “AND” and “OR” gates. The FFs are used to store signals, but can only hold one bit each. For larger storage, Block RAM (BRAM) may be used. The CLBs and BRAM units are placed on the chip in a grid and connected over an interconnect fabric that spans the whole chip.
With growing, more complex IT landscapes, companies are relying on enterprise application integration (EAI) middleware to transport data among systems. Applications in the IT landscapes have different data formats for sharing data, but only unlock their full potential when integrated. Hence, this information has to be transformed, altered, and routed between the applications in order to get from a source to its destination system.
Recently, with the rise of mobile computing, the cloud, and the internet of things (IoT), the number of devices and applications producing data is increasing to meet the vision of connecting every object in the real world. As a consequence, EAI is facing immense amounts of data to be processed. As integration systems are the middleware among the applications in a system landscape, the throughput of such a system is critical for the whole landscape. While the usage of modern hardware such as FPGAs in related domains such as query and event processing led to positive results in terms of low latency, the effect on application integration and throughput has not yet been considered.